package com.design.pattern.component;

import java.util.ArrayList;
import java.util.List;

/**
 * 这个就是盒子的每一个节点喽~
 */
public class MagicBoxNode extends MagicBox {
    //盒子本身是可以持有盒子本身的,同时也可以持有盒子人
    List<MagicBox> boxs=new ArrayList<>();
    public MagicBoxNode(String name) {
        super(name);
    }

    /**
     * 添加节点
     * @param box
     */
    public void add(MagicBox box){
        boxs.add(box);
    }

    /**
     * 删除节点
     * @param box
     */
    public void delete(MagicBox box){
        boxs.remove(box);
    }

    /**
     * 获取所有节点
     * @return
     */
    public void getAll(){
        for (MagicBox box :boxs) {
           if (box instanceof BoxPerson){
               System.out.println(box.getName());
               ((BoxPerson) box).open();
           }else {
               ((MagicBoxNode)box).getAll();
           }
        }
    }

}
